package org.ccay.demo.tree.dao;

import java.util.List;

import org.ccay.core.base.PageVO;
import org.ccay.core.base.PagedResult;
import org.ccay.core.exception.ApplicationException;
import org.ccay.demo.tree.TreeVO;

/**
 * 
 * 测试--树Dao接口
 */
public interface ITreeDao {
	
	/**
	 * 通过条件查询节点信息
	 * @param queryTree
	 * @return
	 */
	public List<TreeVO> findTreeListByCondition(TreeVO queryTree);
	
	/**
	 * 通过条件查询节点信息
	 * @param queryTree
	 * @return
	 */
	public List<TreeVO> findTreeListByParentId(TreeVO queryTree);
	
	/**
	 * 通过条件查询分页节点信息
	 * @param queryTree
	 * @param pageVO
	 * @return
	 */
	public PagedResult<TreeVO> findPagedTreeList(TreeVO queryTree, PageVO pageVO);
	
	/**
	 * @param newStudents
	 * @throws ApplicationException
	 */
	public void createTrees(List<TreeVO> newTrees) throws ApplicationException;
	
	/**
	 * 批量删除节点信息
	 * @param existedStudents
	 * @throws ApplicationException
	 */
	public void deleteTrees(List<TreeVO> existedTrees) throws ApplicationException;
	
	/**
	 * 批量删除节点信息
	 * @param existedStudents
	 * @throws ApplicationException
	 */
	public void deleteTreesLazyLoad(List<TreeVO> existedTrees) throws ApplicationException;
	
	/**
	 * 批量修改节点信息
	 * @param existedStudents
	 * @throws ApplicationException
	 */
	public void updateTrees(List<TreeVO> existedTrees) throws ApplicationException;

	public void deleteTree(TreeVO existedTrees)throws ApplicationException;

	public void createTree(TreeVO newTrees)throws ApplicationException;

	public void updateTree(TreeVO existedTrees)throws ApplicationException;
}
